package com.example.warehouse.sys.dao.persist.respository;

import com.example.warehouse.common.pojo.vo.PageData;
import com.example.warehouse.sys.pojo.entity.SysUser;
import com.example.warehouse.sys.pojo.vo.*;
import lombok.experimental.Accessors;

import java.util.List;

public interface IUserRepository {
    //创建用户
    int insert(SysUser user);

    //根据id删除
    int deleteById(Long id);

    int deleteByRoleId(Long roleId);

    //根据id修改
    int updateById(SysUser user);

    //模糊查询
    List<UserCustomerStandardVO> queryByKeyWord(String deptName, String userName, String address);


    //根据id查询角色
    Long selectByRoleId(Long id);

    String selectNicknameById(Long id);

    //根据id查询用户信息
    UserStandardVO getStandardById(Long id);

    //根据id查询用户信息
    UserPersonalVO getPersonalById(Long id);

    /**
     * 查询所有数据
     *
     */
    List<SysUser> selectAll();
    //根据用户名查询数量
    int countByName(String name);

    //根据id查询数量
    int countById(Long id);

    /**
     * 根据用户名查询用户的登录信息
     *
     * @param name 用户名
     * @return 匹配的用户的登录信息，如果没有匹配的数据，则返回null
     */
    UserLoginInfoVO getLoginInfoByUsername(String name);
    /**
     * 用户列表
     */
    PageData<SysUserListItemVO> list(Integer pageNum, Integer pageSize);
}
